To know whether the block number is more than 200K before

returning the difficulty, a check is done, and if yes, then the bomb

logic is applied to increase the difficulty exponentially.

In order to increase the difficulty exponentially, the new block number

is calculated by adding one to the parent block number.

Dividing the new block number by 100K , and if the output obtained is

subtracted from 2, the new block number is more than 200K .

By using the calculation 2^ output of Step 12, the difficulty delta

increase exponentially is calculated.

By adding the output of the previous step to the difficulty calculated in

Step 7 , calculate the new difficulty.

The mining time difference between 10 and 19 seconds is kept by Ethereum

by following these steps. Division by 10 in Step 2 helps in creating three

ranges—

the difficulty is increased if it is the first range in which the value

falls, the difficulty is kept constant if it falls in the second range, and the

difficulty is reduced if it falls in the third range.

In case you want to change the ranges of difficulty, you can try it by

dividing it by some other number in Step 2.

The concept of uncle block

An uncle block is illustrated as follows: